package com.itheima.edu.info.manager.controller;

import com.itheima.edu.info.manager.domain.Teacher;
import com.itheima.edu.info.manager.service.TeacherService;

import java.util.Scanner;

public class TeacherController {

    Scanner sc = new Scanner(System.in);

    //创建老师服务员的对象
    TeacherService teacherService = new TeacherService();

    public void start() {
        while (true) {
            System.out.println("--------欢迎来到 <老师> 管理系统--------");
            System.out.println("请输入您的选择: 1.添加老师  2.删除老师  3.修改老师  4.查看老师  5.退出");
            String choice = sc.next();
            switch (choice) {
                case "1":
                    addTeacher();
                    break;
                case "2":
                    deleteTeacherById();
                    break;
                case "3":
                    System.out.println("修改老师");
                    break;
                case "4":
                    findAllTeacher();
                    break;
                case "5":
                    System.out.println("感谢您使用老师管理系统,再见!");
                    return;
                default:
                    System.out.println("您的输入有误,请重新输入");
                    break;
            }
        }
    }

    private void deleteTeacherById() {
        Teacher[] tea = teacherService.findAllTeacher();
        if(tea == null){
            System.out.println("查无信息,请添加后重试");
            return;
        }

    }
    //客服类中查看老师信息的方法
    public void findAllTeacher() {
        //先指挥老师服务员将老师信息提交过来,将其存入到一个老师类型的数组容器中
        Teacher[] tea = teacherService.findAllTeacher();
        //如果这个老师服务员返回的结果为空,说明数组中还没有数据
        if (tea == null) {
            System.out.println("查无信息,请添加后重试");
        }
        //表头信息
        System.out.println("工号\t\t姓名\t年龄\t生日");
        //遍历数组
        for (int i = 0; i < tea.length; i++) {
            Teacher teacher = tea[i];
            //此时这个数组中可能还没有装满所以需要加入判断,如果拿到的老师对象不为空则输出打印老师信息
            if (teacher != null) {
                System.out.println(teacher.getSid() + "\t" + teacher.getName() + "\t" + teacher.getAge() + "\t\t" + teacher.getBirthday());
            }
        }
    }
    //老师客服类中的添加老师的方法
    public void addTeacher() {
        System.out.println("请输入老师sid:");
        //在这里加入一个判断,键盘录入的工号是否已经存在
        String sid;
        //此处需要加入一个循环
        while (true) {
            sid = sc.next();
            //需要指挥老师服务员调用其是否存在的方法,提供一个工号让其返回一个布尔类型的结果
            boolean res = teacherService.isExists(sid);
            //如果为真,说明工号已存在
            if (res) {
                System.out.println("工号已被占用,请重新输入:");
            } else {
                //如果为假退出循环继续程序
                break;
            }
        }
        System.out.println("请输入老师姓名:");
        String name = sc.next();
        System.out.println("请输入老师年龄:");
        String age = sc.next();
        System.out.println("请输入老师生日:");
        String birthday = sc.next();
        //创建一个教室对象
        Teacher teacher = new Teacher();
        //将键盘录入的老师信息封装成一个老师对象
        teacher.setSid(sid);
        teacher.setName(name);
        teacher.setAge(age);
        teacher.setBirthday(birthday);
        //将封装好的老师信息提交给老师服务员,让其返回一个布尔类型的结果,判断是否添加成功
        boolean res = teacherService.addTeacher(teacher);
        //如果为真则添加成功
        if (res) {
            System.out.println("添加成功");
        } else {
            //否则则添加失败
            System.out.println("添加失败");
        }
    }
}
